class Solution {
public:
    const int inf=0x3f3f3f3f;
    int lengthOfLongestSubstring(string s) {
        int ret=0; 
        unordered_map<char,int>hash; 
        for(int left=0,right=0;right<s.size();right++)
        {
            auto ch=s[right];
            hash[ch]++;
            while(hash[ch]>1)
            {
                hash[s[left++]]--;
            }
            ret=max(ret,right-left+1);
        }
        return ret; 
    }
};